package BinaryTreePackage;

/**
 * @author Lzm
 * @version 1.0
 */
public class maxDepth_ {

  // 1. 确定参数和返回值
  // 2. 确定终止条件
  // 3. 处理每层逻辑

  //采用后序遍历
  // 深度指任意节点到根节点的距离, 需要从下往上返回, 所以采用后序遍历
  // 每递归一次就让深度加1
  public int maxDepth(TreeNode root) {
    //
    if (root == null){
      return 0;
    }
    int leftDepth = maxDepth(root.left);
    int rightDepth = maxDepth(root.right);
    // 取左右子节点深度的最大值
    return Math.max(leftDepth,rightDepth) + 1;
  }
}
